package com.albertyjz.juc;

import java.util.concurrent.TimeUnit;

class Phone{
    public static synchronized void sendEmail() throws InterruptedException {
        TimeUnit.SECONDS.sleep(4);
        System.out.println("-----sendEmail");
    }
    public synchronized void sendSMS(){
        System.out.println("-----sendSMS");
    }
    public void hello(){
        System.out.println("-----hello");
    }
}
//题目：多线程8锁
//1.标准访问，先打邮件还是短信？
//2.邮件方法暂停4s，请问先打邮件还是短信？
//3.新增一个方法，先打印哪个？
//4.两部手机，先邮件还是短信？
//5.两个静态方法，同一部手机，先打印哪个？
//6.两个静态方法，两部手机，先打印哪个？
//7.一个普通同步，1个静态同步，1部手机？
//8.一个普通同步，1个静态同步，2部手机？
public class Lock8 {
    public static void main(String[] args) throws InterruptedException {
        Phone phone=new Phone();
        Phone phone2=new Phone();
        new Thread(()->{
            try {
                phone.sendEmail();
            } catch (Exception e) {
                e.printStackTrace();
            }
        },"A").start();

        //保证A线程先启动，加一个延时
        Thread.sleep(100);
        new Thread(()->{
            try {
                //phone.sendSMS();
                //phone.hello();
                phone2.sendSMS();
            } catch (Exception e) {
                e.printStackTrace();
            }
        },"B").start();
    }
}
